#include "elemGenerique.h"

void testamentEltInt(Element * e)
{
  int **e1 = (int**)e;
  free((*e1));
  (*e1) = NULL;
}

void initialisationCopEltInt(Element * e3, const Element e4)
{
  int **e1 = (int**)e3;
  int *e2 = (int*)e4;
  *e1 = (int*) malloc (sizeof (int));
  (*e1)[0] = (*e2);
}

void afficherEltInt(const Element e)
{
  int *e1 = (int*)e;
  if(e1)
    printf("%d, ", (*e1));
}

int comparaisonEltInt(const Element e3, const Element e4)
{
  int *e1 = (int*)e3;
  int *e2 = (int*)e4;
  if((*e1) == (*e2 ))
    return 1;
  return 0;
}

void testamentEltFich(Element * e)
{
  Fichier **e1 = (Fichier**)e;
  free((*e1)->nomFichier);
  (*e1)->nomFichier = NULL;
  (*e1)->socket = 0;
  free((*e1));
  (*e1) = NULL;
}

void initialisationCopEltFich(Element * e3, const Element e4)
{
  Fichier **e1 = (Fichier**)e3;
  Fichier *e2 = (Fichier*)e4;
  *e1 = (Fichier*) malloc (sizeof (Fichier));
  (*e1)->nomFichier = (char *) malloc ((strlen(e2->nomFichier) + 1) * sizeof(char));
  strcpy((*e1)->nomFichier, e2->nomFichier);
  (*e1)->socket  = (e2)->socket;
}

void afficherEltFich(const Element e)
{
  Fichier *e1 = (Fichier*)e;
  if(e1)
    {
      printf("%s -> ", e1->nomFichier);
      printf("%d\n", e1->socket);
    }
}

int comparaisonEltFich(const Element e3, const Element e4)
{
  Fichier *e1 = (Fichier*)e3;
  Fichier *e2 = (Fichier*)e4;
  if(e1->socket == e2->socket && strcmp(e1->nomFichier, e2->nomFichier))
    return 1;
  return 0;
}
